1. Field of the Invention
This invention relates to data processing systems; and more specifically to a method of transferring data across an interface between units comprising a data processing system.
2. Description of the Prior Art
In the prior art, it is known for data processing systems to have a special class of program instructions to deal with input/output (I/O) operations from or to peripheral devices attached to the system. More recently, it is known to perform I/O operations using normal program instructions that are used to reference memory within the data processing system. This technique, which is known as memory mapped I/O, allows peripheral operations to be performed by setting aside a predetermined amount of the memory address space and assigning addresses within this address space to device registers associated with peripheral devices. Programmed operations on these device registers, such as transferring information into or out of them or manipulating data within them, can then be performed by normal memory reference instructions.
One such system using memory mapped I/O is the Digital Equipment Corporation pdpll computer that is described in their publication entitled, pdpll handbook, copyrighted 1969, which is incorporated herein by reference. In this system there are two types of device registers associated with each peripheral device: (1) control and status registers; and (2) data registers. In the pdpll system, peripheral devices have one or more control and status registers which contain all the information necessary to communicate to the peripheral device. Among other things, these registers contain function bits which specify the type of operation that the peripheral device is to perform (such as read or write) and condition bits which indicate the status of the operation on the associated peripheral device (such as done, error or ready). In the pdpll system, each peripheral device also has one or more data registers for temporarily storing data to be transferred into or out of the system. In general, in this system, loading one of the control and status registers associated with a peripheral device will initiate the transfer of data to the peripheral device as determined by the function bits.
Although this memory mapped I/O technique offers increased flexibility in input/output programming, it has the disadvantage that considerable amounts of logic may be required in order to implement the device registers so that the memory reference instructions used to manipulate the device registers can proceed normally without having to wait part way through the instruction execution for the peripheral device to receive or transmit the data in or to the device registers.